#ifndef __SDB_H__
#define __SDB_H__
#include <common.h>

extern vluint64_t sim_time;
#define MAX_SIM_TIME 500
#define EXPR_MAX_LENGTH 128
typedef struct watchpoint {
  int NO;
  char expr[EXPR_MAX_LENGTH];
  uint64_t val;
  bool is_using;
  struct watchpoint *next;
  struct watchpoint *previous;
  /* TODO: Add more members if necessary */
} WP;

void init_regex();
uint64_t expr(char *e, bool *success);

void init_wp_pool();
WP* new_wp();
int free_wp_by_no(int num);
void watchpoint_display();
void watchpoint_scan();

#else
#endif